const express = require('express');
const router = express.Router();
const userAuthController = require('../controllers/userAuthController');
const { authenticateUserToken } = require('../middleware/jwtAuth');
const { loginLimiter, smsLimiter, smsHourlyLimiter } = require('../middleware/rateLimitConfig');

// 用户注册（账号密码）
router.post('/register', loginLimiter, userAuthController.register.bind(userAuthController));

// 用户登录（账号密码）
router.post('/login', loginLimiter, userAuthController.login.bind(userAuthController));

// 发送短信验证码（严格限流：1分钟1次+1小时5次）
router.post('/send-sms', smsLimiter, smsHourlyLimiter, userAuthController.sendSmsCode.bind(userAuthController));

// 短信验证码登录/注册
router.post('/login-sms', loginLimiter, userAuthController.loginWithSms.bind(userAuthController));

// 游客模式登录（无需微信授权）
router.post('/guest-login', loginLimiter, userAuthController.guestLogin.bind(userAuthController));

// 获取当前用户信息（需要登录）
router.get('/me', authenticateUserToken, userAuthController.getUserInfo.bind(userAuthController));

// 更新用户信息（需要登录）
router.put('/me', authenticateUserToken, userAuthController.updateUserInfo.bind(userAuthController));

// 游客账号转正（绑定手机号）
router.post('/upgrade-account', authenticateUserToken, userAuthController.upgradeGuestAccount.bind(userAuthController));

module.exports = router;

